home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / IBPalettes / WWTCLKit / WWTCLInterp.h < prev    next >
Encoding:
Text File  |  1995-03-22  |  5.6 KB  |  155 lines

  1. /* Copyright 1993 Michael B. Johnson
  2.  * Permission to use, copy, modify, and distribute this
  3.  * software and its documentation for any non-commercial 
  4.  * purpose and without fee is hereby granted, provided that the 
  5.  * above copyright notice appears in all copies.  Michael B. Johnson
  6.  * makes no representations about the suitability of this
  7.  * software for any purpose.  It is provided "as is" without
  8.  * express or implied warranty.
  9.  *
  10.  * Permission to use, copy, modify or distribute this software
  11.  * and its documentation for any commercial purpose must be
  12.  * confirmed in writing with Michael B. Johnson.  He can be
  13.  * contacted at:
  14.  *              20 Ames St. E15-023G    
  15.  *              Cambridge, MA 02141
  16.  *              (617) 547 0563
  17.  *              
  18.  */
  19.  
  20.  
  21. #import <appkit/appkit.h>
  22. #import "tcl.h"
  23.  
  24. //typedef void (*__w_fptr)();
  25.  
  26. #define WWTCLINTERP_PANEL_COUNT 10
  27.  
  28. @interface WWTCLInterp:Object
  29. {
  30.     Tcl_Interp     *interp;
  31.     Tcl_HashTable  uiHashTableByWindow;
  32.     BOOL           checkCmdBufSize,
  33.                    continueControlPanel;
  34.     int            cmdBufSize; 
  35.     char           *cmdBuf; 
  36.     id             initializationText;
  37.     id             controlPanel;
  38.     id             delegate;
  39.     id             accessoryPanel0;
  40.     id             accessoryPanel1; 
  41.     id             accessoryPanel2;
  42.     id             accessoryPanel3; 
  43.     id             accessoryPanel4;
  44.     id             accessoryPanel5; 
  45.     id             accessoryPanel6;
  46.     id             accessoryPanel7; 
  47.     id             accessoryPanel8;
  48.     id             accessoryPanel9;
  49.     id             accessoryPanels[WWTCLINTERP_PANEL_COUNT];
  50.     id             accessoryLists[WWTCLINTERP_PANEL_COUNT];
  51.     id             errorWindow;
  52.     id             errorInfoText;
  53.  
  54.     List           *traceList;
  55.     List           *manipulatorList;
  56.     List           *controlPanelList;
  57.  
  58.     BOOL           showErrors, dejaVuInIB, awakeInIB; 
  59.  
  60.     char           **nibNameArgv, *pathInIB;
  61.     int            nibNameArgc;
  62.  
  63.     int            setc, procc, tmpStringc, tmpStringIndex;
  64.     char           **setv, **procv, **tmpStringv;
  65. }
  66.  
  67. - init;
  68. - free;
  69.  
  70. - loadNibFiles;
  71.  
  72. - (int)eval:(const char *)cmd;
  73. - (char *)eval:(const char *)cmd :(int *)ret;
  74. - (int)globalEval:(const char *)cmd;
  75. - (char *)globalEval:(const char *)cmd :(int *)ret;
  76. - (BOOL)exprBoolean:(const char *)cmd;
  77. - (long)exprLong:(const char *)cmd;
  78. - (double)exprDouble:(const char *)cmd;
  79. - (char *)exprString:(const char *)cmd :(int *)ret;
  80. - (int)source:(const char *)filename;
  81. - (void)resetResult;
  82.  
  83. - (int)unsetVar:(char *)variableName;
  84. - (int)unsetVar2:(char *)name1 :(char *)name2;
  85. - (char *)setVar:(char *)variableName toValue:(char *)newValue;
  86. - (char *)setVar2:(char *)name1 :(char *)name2 toValue:(char *)newValue;
  87. - (char *)setLocalVar:(char *)variableName toValue:(char *)newValue;
  88. - (char *)setLocalVar2:(char *)name1 :(char *)name2 toValue:(char *)newValue;
  89. - (BOOL)globalVarExists:(const char *)varName;
  90. - (BOOL)varExists:(const char *)varName;
  91. - (char *)getVar:(char *)variableName;
  92. - (char *)getVar2:(char *)name1 :(char *)name2;
  93. - (char *)getLocalVar:(char *)variableName;
  94. - (char *)getLocalVar2:(char *)name1 :(char *)name2;
  95.  
  96. - generateClosureFrom:(const char *)originalExpression andForGlobalsCall:(Tcl_VarTraceProc *)writeProc usingData:(ClientData)clientData;
  97. - linkVarNamed:(const char *)varName toPointer:(char *)cPointer withFlags:(int)flags;
  98. - unlinkVarNamed:(const char *)varName;
  99.  
  100. - setShowErrors:(BOOL)flag;
  101. - (BOOL)showErrors;
  102. - showError:(char *)error; // this is for subclasses only!
  103.  
  104. - findControlPanelTitled:(const char *)title;
  105.  
  106. - unloadControlPanels;
  107. - updateTclVariables:view :list;
  108. - loadControlPanel:(char *)controlPanelNibFilename modally:(BOOL)runModallyAndClose;
  109.  
  110. - setDelegate:newDelegate;
  111. - delegate;
  112.  
  113. - cancelControlPanel:sender;
  114. - continueControlPanel:sender;
  115.  
  116. - (BOOL)regExpMatch:(char *)string against:(char *)regexp;
  117.  
  118. - (const char *)pathInIB;
  119. - setPathInIB:(const char *)newPath;
  120. - setNibNameArgc:(int)newArgc Argv:(char **)newArgv;
  121. - (const char **)nibNameArgv;
  122. - (int)nibNameArgc;
  123.  
  124. - closeErrorWindow:sender;
  125.  
  126. - addToManipulatorList:newManipulator;
  127.  
  128. - (void)addCommand:(const char *)name :(Tcl_CmdProc *)func :(id)me;
  129. - (void)addCommand:(const char *)name :(Tcl_CmdProc *)func :me :(Tcl_CmdDeleteProc *)deleteFunc;
  130. - (BOOL)addCommand:(const char *)name fromFile:(const char *)fileName usingFunction:(const char *)funcName AndObject:me;
  131.  
  132. - (void)createMathFunc:(const char *)name numArgs:(int)numArgs argTypes:(Tcl_ValueType *)argTypes proc:(Tcl_MathProc *)proc clientData:(ClientData)clientData;
  133.  
  134. // this method is a hack; you shouldn't use it!
  135. - (char **)argvFromCmd:(const char *)cmd;
  136.  
  137. - traceWritesOn:(const char *)varName andCall:(Tcl_VarTraceProc *)traceProcPointer usingData:(ClientData)datum;
  138. - traceWritesOn2:(const char *)varName1 :(const char *)varName2 andCall:(Tcl_VarTraceProc *)traceProcPointer usingData:(ClientData)datum;
  139. - untraceWritesOn:(const char *)varName calling:(Tcl_VarTraceProc *)traceProcPointer usingData:(ClientData)datum;
  140. - _untraceWritesOn:(const char *)varName calling:(Tcl_VarTraceProc *)traceProcPointer usingData:(ClientData)datum;
  141. - traceReadsOn:(const char *)varName andCall:(Tcl_VarTraceProc *)traceProcPointer usingData:(ClientData)datum;
  142. - untraceReadsOn:(const char *)varName calling:(Tcl_VarTraceProc *)traceProcPointer usingData:(ClientData)datum;
  143.  
  144. - (Tcl_Interp *)interp;
  145.  
  146. - windowWillClose:sender;
  147.  
  148. - writeState:(NXStream *)stream;
  149.  
  150. // private API routine for traces to untrace themselves without getting free'ed (which they'll do themselves)
  151. //
  152. - _untraceWritesOn:(const char *)varName calling:(Tcl_VarTraceProc *)traceProcPointer usingData:(ClientData)datum;
  153.  
  154. @end
  155.